Some modern computing system architectures utilize physically and conceptually separated nodes to leverage the speed of computing hardware. In such architectures, input/output devices may be located in various physical locations on the computer. Each input/output device may be used by different applications and processes on the separate nodes. Kernel elements executing on such architectures may be responsible for facilitating communication between an input/output device and an application which is physically remote from that device.